﻿Imports System.IO
Imports System.Data
Imports CrystalDecisions.Shared
Imports CrystalDecisions.CrystalReports.Engine

Partial Class Interfaz_frmRrhhEmpleados
    Inherits System.Web.UI.Page
    Private CL As New Logica.ModuloRHH.ControladorLogica
    Dim urlImage As String

    Dim dataFicha As New DataTarjetaPersonal
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If CL.visibilidadesFormsInternos("RecursosHumanos", Session("user").ToString) = False Then
            Response.Redirect("Index.aspx")
        End If

        If Not Page.IsPostBack Then
            Dim arrayPersona As ArrayList
            Dim ArrayUsuario As ArrayList
            Dim i As Integer

            arrayPersona = CL.obtenerEmpleado()
            ArrayUsuario = CL.ObtenerUsuario()

            If Not Page.IsPostBack Then
                For i = 0 To arrayPersona.Count - 1
                    DropRut.Items.Add(DirectCast(arrayPersona.Item(i), Empleado).Rut)
                Next

                For i = 0 To ArrayUsuario.Count - 1
                    Me.DropUSer.Items.Add(DirectCast(ArrayUsuario.Item(i), Usuario).User)
                Next
            End If
        End If
    End Sub

#Region "Funciones"

    Public Function CargarPresupuesto() As Boolean

        Dim myRowFicha As DataRow = Me.dataFicha.DataTarjeta.NewRow

        Try
            ' Carga De Datos del Cabezera
            myRowFicha.Item("nombre") = TxTNombre.Text & " " & TxTapellido.Text
            myRowFicha.Item("cargo") = TxTProf.Text
            myRowFicha.Item("rut") = TxTRut.Text
            myRowFicha.Item("edad") = TxTEdad.Text

            Me.dataFicha.DataTarjeta.Rows.Add(myRowFicha)

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Function

    Private Sub CrearFicha(ByVal repo As ReportDocument)
        Try
            Dim fileName As String = Server.MapPath("~\Interfaz\Reportes\TarjetaPersonal.rpt")
            repo.Load(fileName)
            repo.SetDataSource(dataFicha)

            Dim info As CrystalDecisions.CrystalReports.Engine.ReportDocument = repo
            info.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.Portrait
            info.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperLetter
            Dim rptStream As New System.IO.MemoryStream
            rptStream = CType(info.ExportToStream(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat), System.IO.MemoryStream)
            Response.Clear()
            Response.ClearContent()
            Response.ClearHeaders()
            Response.Buffer = False
            Response.ContentType = "application/vnd.pdf"
            Response.AddHeader("Content-Disposition", "attachment;filename=FichaTrabajador-" + TxTRut.Text + ".pdf")
            Response.Flush()
            Response.BinaryWrite(rptStream.ToArray())
            Response.End()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

    Private Sub cargarEmpleado()
        Try
            Dim empleado As Empleado
            Dim usuario As Usuario

            If Me.RD1.Checked = True Then
                empleado = DirectCast(CL.obtenerEmpleadoRut(DropRut.Text).Item(0), Empleado)
                usuario = DirectCast(CL.ObtenerUsuarioRutEmpleado(empleado.Rut).Item(0), Usuario)
            Else
                If Me.RD4.Checked = True Then
                    usuario = DirectCast(CL.ObtenerUsuarioUserID(Me.DropUSer.Text).Item(0), Usuario)
                    empleado = DirectCast(CL.obtenerEmpleadoRut(usuario.RefEmpleado).Item(0), Empleado)
                End If
            End If

            Session("usuarioArchivo") = usuario.User


            Me.ImgUser.ImageUrl = empleado.RutaFoto
            Dim nombre As String = empleado.Nombre
            Dim apellido As String = empleado.Apellido
            Dim rut As String = empleado.Rut
            Dim direccion As String = empleado.Direccion
            Dim telefono As String = empleado.Telefono
            Dim profesion As String = empleado.Profesion
            Dim edad As String = empleado.Edad
            Dim fechaInicioEmpresa As String = empleado.FechaInicioEmpresa
            Dim fechaFinEmpresa As String = empleado.FechaFinEmpresa
            Dim sexo As String = empleado.Sexo
            Dim fechaNacimiento As String = empleado.FechaNacimiento
            Dim nacionalidad As String = empleado.Nacionalidad
            Dim paisnacimiento As String = empleado.Paisnacimiento
            Dim regionNacimiento As String = empleado.RegionNacimiento
            Dim comunaNacimiento As String = empleado.ComunaNacimiento
            Dim ciudadNacimiento As String = empleado.CiudadNacimiento
            Dim provinciaRecidencia As String = empleado.ProvinciaRecidencia
            Dim ciudadResidencia As String = empleado.CiudadResidencia
            Dim celular As String = empleado.Celular
            Dim email As String = empleado.Email
            Dim estadoCivil As String = empleado.EstadoCivil
            Dim cargasFamiliares As String = empleado.CargasFamiliares
            Dim numeroCalzado As String = empleado.NumeroCalzado
            Dim talla As String = empleado.Talla

            TxTNombre.Text = nombre
            TxTRut.Text = rut
            TxTProf.Text = profesion
            TxtNacimiento.Text = fechaNacimiento
            TxtPais.Text = paisnacimiento
            TxtComuna.Text = comunaNacimiento
            TxTapellido.Text = apellido
            TxtSexo.Text = sexo
            TxTEdad.Text = edad
            TxtNacionalidad.Text = nacionalidad
            TxtRegion.Text = regionNacimiento
            TxtCiudad.Text = ciudadNacimiento
            TxtProvinviaRes.Text = provinciaRecidencia
            TxTdireccionRes.Text = direccion
            TxtCelular.Text = celular
            TxtEstadoCivil.Text = estadoCivil
            TxtCiudadRes.Text = ciudadResidencia
            TxtTelefonoRes.Text = telefono
            TxtMail.Text = email
            TxtCargasFam.Text = cargasFamiliares
            TxTcalzado.Text = numeroCalzado
            TxtFechaEntrada.Text = fechaInicioEmpresa
            TxTtalla.Text = talla
            TxtFechaSalida.Text = fechaFinEmpresa

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
#End Region

#Region "Botones"

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnFicha.Click
        cargarEmpleado()
        Me.RD1.Checked = False
        Me.RD4.Checked = False
    End Sub

    Protected Sub BtnSubirArchivos_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnSubirArchivos.Click
        Response.Redirect("frmRRHHSubirArchivo.aspx")
    End Sub

    Protected Sub BtnGenerador_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnGenerador.Click
        If TxTRut.Text <> "" Then
            Dim repo As New ReportDocument
            CargarPresupuesto()
            CrearFicha(repo)
        Else
            MsgBox("Debe Buscar un funcionario primero")
        End If
    End Sub
   
#End Region
    
    
 
   
    
End Class
